#include <iostream>
#include <cmath>
#include <math.h>
#include <iomanip>

using namespace std;

#define pi 3.14159265358
#define eps 1E-9

struct point {
	double x, y;
	point() {};
	point(double xx, double yy) {x = xx; y = yy;};
};

struct line {
	double a, b, c;
};

void form_line(point A, point B, line &l)
{
	l.a = B.y - A.y;
	l.b = A.x - B.x;
	l.c = l.a * A.x + l.b * A.y;
}

void find_Per_Bi(point A, point B, line &l)
{
	point M((A.x+B.x)/2, (A.y+B.y)/2);	// M = Midpoint of AB

	line l1;	
	form_line(A, B, l1);
	l.a = -l1.b;
	l.b = l1.a;
	l.c = l.a * M.x + l.b * M.y;
}

void find_intersection(line l1, line l2, point &O)
{
	double det = l1.a*l2.b - l2.a*l1.b;

	// assume intersection, so det > 0

	O.x = (l2.b*l1.c - l1.b*l2.c) / det;
	O.y = (l1.a*l2.c - l2.a*l1.c) / det;
}

bool same(point A, point B)
{
	return (abs(A.x - B.x) < eps && abs(A.y - B.y) < eps);
}

double dist_square(point A, point B)
{
	double dx = A.x - B.x;
	double dy = A.y - B.y;
	return dx*dx + dy*dy;
}

void rotate(point O, point A, point &P, double t)
{
	A.x -= O.x;
	A.y -= O.y;
	
	P.x = A.x * cos(t) - A.y * sin(t);
	P.y = A.x * sin(t) + A.y * cos(t);

	P.x += O.x;
	P.y += O.y;
}

int main()
{
	point A, B, C, O;
	cin >> A.x >> A.y >> B.x >> B.y >> C.x >> C.y;

	line l1, l2;
	find_Per_Bi(A, B, l1);
	find_Per_Bi(B, C, l2);
	find_intersection(l1, l2, O);

//	cout << O.x << " " << O.y << endl;

	bool stop = false;
	for (int n = 3; n <= 100; n++)
	{
		int sum = 0;

		point P = A;
		for (int i = 0; i < n-1; i++)
		{
			rotate(O, P, P, 2*pi/n); // rotate OP into OP' by 2*pi/i counterclockwise

//			cout << i << " " << P.x << " " << P.y << endl;

			if (same(P, B)) sum++;
			if (same(P, C)) sum++;
		}
		if (sum == 2)
		{
			double r2 = dist_square(O, A);
			cout << fixed << setprecision(6) << sin(2*pi/n)*n*r2/2 << endl;
			stop = true;
			return 0;
		}
	}

	if (!stop) cout << "0" << endl;

	return 0;
}
